1. Field of the Invention
This invention is related to the field of computer systems and, more particularly, to virtual machines executing on computer systems and mobility of a user's data between computer systems.
2. Description of the Related Art
With computer systems becoming ubiquitous in society, it is becoming increasingly common for a given user to have access to more than one computer system. For example, many users may have access to one or more computer systems at work, as well as one or more computer systems at home. It is also frequent for traveling users to access a computer system at their destination in addition to computer systems at the user's home or office.
With the many different systems to which a user has access, the user may frequently experience the problem of working on a different computer system from the one storing the most recently updated files that the user needs. For example, the user may wish to work on email files, database files, spreadsheets, word processor documents, presentations, etc.
One method the user may employ to retrieve the most up to date files may be to recall where (i.e. on which computer system) the most up to date files are stored and to copy the files to the current computer system. The copy may occur using a network between the two computer systems, storage that is shared between the computer systems, etc. This method requires that the user be able to recall where the files are. Additionally, if the user had left the files open on the computer system which stores the files (e.g. the application which accesses the files is still running on that computer system), there may be uncommitted updates in the memory of that computer system which are not accessible to the user on the current computer system. Even if the updates to the files are committed, the fact that the application has the files open may, in some cases, prevent the user from copying the files.
A second method the user may employ is to actually have his applications executing and/or his files stored on a predetermined computer system, but provide user access from any computer system (e.g. keyboard, mouse, and monitor access may be from any computer system). Essentially, the predetermined computer system receives the user input from the other computer system accessed by the user and provides output (e.g. video output to the monitor, audio output, etc.) to the other computer system. This method may result in slow response to the user (since the input and output travel the network between the computer systems) and also requires network connectivity during the entire user session.